Commit
16d371873 lifted the requirement for source actors to be
widgets, then got it wrong :rolling_eyes:
The content box is expected to be in actor coordinates, so the
allocation must be translated to (0, 0).
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4593
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1969>
const sourceAllocation = sourceActor.get_allocation_box();
const sourceContentBox = sourceActor instanceof St.Widget
? sourceActor.get_theme_node().get_content_box(sourceAllocation)
- : sourceAllocation;
+ : new Clutter.ActorBox({
+ x2: sourceAllocation.get_width(),
+ y2: sourceAllocation.get_height(),
+ });
let sourceTopLeft = this._sourceExtents.get_top_left();
let sourceBottomRight = this._sourceExtents.get_bottom_right();
let sourceCenterX = sourceTopLeft.x + sourceContentBox.x1 + (sourceContentBox.x2 - sourceContentBox.x1) * this._sourceAlignment;